package bosque.unc.gui;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.HashMap;

import javax.swing.JButton;

import bosque.unc.Funciones;
import bosque.unc.enumerations.Coordenada;

public class TestGrafico extends JFrame {

	private JPanel contentPane;
	private JTextField textFieldTelEjeX;
	private JTextField textFieldTelEjeY;
	private JTextField textFieldCup;
	private JTextField textFieldPlataforma;
	
	private JButton btnMoverTelescopio;

	private static Scoba scoba;
	private JTextField textFieldDeclin;
	private JTextField textFieldAngHor;
	private JButton butDibujarTel;


	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					TestGrafico frame = new TestGrafico(scoba);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public TestGrafico(Scoba sco)
	
	{
		scoba = sco;
		//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 418, 348);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblTelescopioEjeX = new JLabel("Telescopio eje X :");
		lblTelescopioEjeX.setHorizontalAlignment(SwingConstants.RIGHT);
		lblTelescopioEjeX.setBounds(28, 28, 103, 14);
		contentPane.add(lblTelescopioEjeX);
		
		JLabel lblTelescopioEjeY = new JLabel("Telescopio eje Y :");
		lblTelescopioEjeY.setHorizontalAlignment(SwingConstants.RIGHT);
		lblTelescopioEjeY.setBounds(28, 65, 103, 14);
		contentPane.add(lblTelescopioEjeY);
		
		JLabel lblCupula = new JLabel("Cupula :");
		lblCupula.setHorizontalAlignment(SwingConstants.RIGHT);
		lblCupula.setBounds(64, 182, 67, 14);
		contentPane.add(lblCupula);
		
		JLabel lblPlataforma = new JLabel("Plataforma :");
		lblPlataforma.setHorizontalAlignment(SwingConstants.RIGHT);
		lblPlataforma.setBounds(42, 212, 89, 14);
		contentPane.add(lblPlataforma);
		
		textFieldTelEjeX = new JTextField();
		textFieldTelEjeX.setBounds(145, 25, 86, 20);
		contentPane.add(textFieldTelEjeX);
		textFieldTelEjeX.setColumns(10);
		
		textFieldTelEjeY = new JTextField();
		textFieldTelEjeY.setBounds(145, 62, 86, 20);
		contentPane.add(textFieldTelEjeY);
		textFieldTelEjeY.setColumns(10);
		
		textFieldCup = new JTextField();
		textFieldCup.setBounds(145, 179, 86, 20);
		contentPane.add(textFieldCup);
		textFieldCup.setColumns(10);
		
		textFieldPlataforma = new JTextField();
		textFieldPlataforma.setBounds(145, 209, 86, 20);
		contentPane.add(textFieldPlataforma);
		textFieldPlataforma.setColumns(10);
		
		
		
		btnMoverTelescopio = new JButton("Mover");
		btnMoverTelescopio.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
		
				
				/*
				double nuevoPosTelY = scoba.getGraficoGUI().setearPosTelY(Double.parseDouble(textFieldTelEjeY.getText()));
				scoba.getGraficoGUI().setearPosTelYlLimites();
				
				double limiteSuperior = scoba.getGraficoGUI().getLimiteSuperiorPosTelY();
				double limiteInferior = scoba.getGraficoGUI().getLimiteInferiorPosTelY();
				
				double nuevoPosTelX = scoba.getGraficoGUI().setearPosTelY(Double.parseDouble(textFieldTelEjeY.getText()));				
				scoba.getGraficoGUI().setearPosTelXLimites();
				
				
				double limiteDerecho = scoba.getGraficoGUI().getLimiteDerechoPosTelX();
				double limiteIzquierdo = scoba.getGraficoGUI().getLimiteIzquierdoPosTelX();
				
				int nuevaPosPlataY = scoba.getGraficoGUI().setearPosPlataforma(Integer.parseInt(textFieldPlataforma.getText()));
				scoba.getGraficoGUI().setearLimintesPlataforma();
				
				*/
				if ((Double.parseDouble(textFieldTelEjeY.getText())>=-80.0) && (Double.parseDouble(textFieldTelEjeY.getText())<=80.0) && (Double.parseDouble(textFieldTelEjeX.getText())>=-80.0) && (Double.parseDouble(textFieldTelEjeX.getText())<=80.0) )
				
				{
					
					
				Double TelEjeX = Double.parseDouble(textFieldTelEjeX.getText());
				
				
				scoba.getGraficoGUI().setPosicionXTelescopio(TelEjeX);
				
				Double TelEjeY = Double.parseDouble(textFieldTelEjeY.getText());
				scoba.getGraficoGUI().setPosicionYTelescopio(TelEjeY);
				
				
				}
				else 
				{
					JOptionPane.showMessageDialog(btnMoverTelescopio, "No se puede setear esa posicion del telescopio "); 
				}
			}
		});
		btnMoverTelescopio.setBounds(283, 38, 89, 23);
		contentPane.add(btnMoverTelescopio);
		
		JButton btnMoverCupula = new JButton("Mover");
		btnMoverCupula.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				Integer Cupula = Integer.parseInt(textFieldCup.getText());
				scoba.getGraficoGUI().dibujarCupula(Cupula);
				
			}
		});
		btnMoverCupula.setBounds(283, 178, 89, 23);
		contentPane.add(btnMoverCupula);
		
		JButton btnMoverPlataforma = new JButton("Mover");
		btnMoverPlataforma.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				Double valor = Double.parseDouble(textFieldPlataforma.getText());
				scoba.getGraficoGUI().setPosicionXPlataforma(valor);
				
				
				
			}
		});
		btnMoverPlataforma.setBounds(283, 208, 89, 23);
		contentPane.add(btnMoverPlataforma);
		
		textFieldDeclin = new JTextField();
		textFieldDeclin.setColumns(10);
		textFieldDeclin.setBounds(49, 121, 86, 20);
		contentPane.add(textFieldDeclin);
		
		textFieldAngHor = new JTextField();
		textFieldAngHor.setColumns(10);
		textFieldAngHor.setBounds(145, 121, 86, 20);
		contentPane.add(textFieldAngHor);
		
		butDibujarTel = new JButton("Dibujar");
		butDibujarTel.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				HashMap<Coordenada,Double> coordenadas;
				Double altura = Double.parseDouble(getTextFieldDeclin().getText());
				Double azimut = Double.parseDouble(getTextFieldAngHor().getText());
				Double posX, posY;
				coordenadas = Funciones.coordEsfericasToCoordCartesianas(altura, azimut,scoba.getGraficoGUI().getLargoTelescopio());
				posX = coordenadas.get(Coordenada.X);
				posY = coordenadas.get(Coordenada.Y);
				
				scoba.getGraficoGUI().setPosicionXTelescopio(
						scoba.getGraficoGUI().getDesplazDibujoTel( posX));
				
				scoba.getGraficoGUI().setPosicionYTelescopio(
						scoba.getGraficoGUI().getDesplazDibujoTel( posY));
			}
		});
		butDibujarTel.setBounds(283, 120, 89, 23);
		contentPane.add(butDibujarTel);
		
		JLabel lblAltura = new JLabel("Altura");
		lblAltura.setHorizontalAlignment(SwingConstants.RIGHT);
		lblAltura.setBounds(50, 104, 67, 14);
		contentPane.add(lblAltura);
		
		JLabel lblAzimut = new JLabel("Azimut");
		lblAzimut.setHorizontalAlignment(SwingConstants.RIGHT);
		lblAzimut.setBounds(145, 104, 60, 14);
		contentPane.add(lblAzimut);
	}
	public JTextField getTextFieldDeclin() {
		return textFieldDeclin;
	}
	public JButton getButDibujarTel() {
		return butDibujarTel;
	}
	public JTextField getTextFieldAngHor() {
		return textFieldAngHor;
	}
}
